<!DOCTYPE html>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script language="javascript" type="text/javascript">
  var wsUri = "ws://127.0.0.1:4242/";
  var output;
  function init() {
    output = document.getElementById("output");
    testWebSocket();
  }
  function testWebSocket() {
    websocket = new WebSocket(wsUri);
    websocket.onopen = function(evt) {
                         onOpen(evt)
                       };
    websocket.onclose = function(evt) {
                          onClose(evt)
                        };
    websocket.onmessage = function(evt) {
                            onMessage(evt)
                          };
    websocket.onerror = function(evt) {
                          onError(evt)
                        };
  }
  function onOpen(evt) {
    writeToScreen("CONNECTED");
    doSend("MODULES");
  }
  function onClose(evt) {
    writeToScreen("DISCONNECTED");
    websocket = null;
    document.getElementById("disconnect").innerText = "Reconnect";
  }
  function onMessage(evt) {
    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
    var split = evt.data.split(" ");
    if (split[0] == "MODULES") {
      var i;
      for (i = 1; i < split.length; i++)
        doSend("ENABLE " + split[i]);
      doSend("INTERVAL 5");
    }
  }
  function onError(evt) {
    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
  }
  function doSend(message) {
    writeToScreen("SENT: " + message);
    websocket.send(message);
  }
  function writeToScreen(message) {
    var pre = document.createElement("p");
    pre.style.wordWrap = "break-word";
    pre.innerHTML = message;
    output.appendChild(pre);
    output.scrollTop = output.scrollHeight;
  }
  function disconnect() {
    if (websocket != null)
      websocket.close();
    else {
      testWebSocket();
      document.getElementById("disconnect").innerText = "Disconnect";
    }
  }
  function sendStuff() {
    var input = document.getElementById("sendstuff");
    doSend(input.value);
    input.value = "";
  }
  window.addEventListener("load", init, false);
</script>
<h2>WebSocket Test</h2>
<input type="text" id="sendstuff" onkeydown="if (event.keyCode == 13) sendStuff()"/></br>
<button onclick="disconnect()" id="disconnect">Disconnect</button></br>
<div id="output" style="overflow:auto; height:500px;"></div>
</html>
